Cache-Control: max-age
TTLを指定する
cacheがstaleなcacheになるまでの時間(秒)
Response Headerで指定された場合
仕様上は、Originがresponseを生成した時間を起点とする、fleshである秒数
しかし、response生成日時を起点とすると、client/sever間で時刻がズレていた場合におかしくなる
そのため、実用上は「requestが発行された時間」を起点とすることが多い
例えばmax-age=100なら、
今後100秒以内にreqを送ろうとした場合は、
実際にはreqを送らずに、Web BrowserのCacheを参照する
100秒以上経過している場合は、実際にreqを送る
経過時間は、Age Headerで確認できる
max-age - Ageが、残りのfreshな時間になる
server側が「今から100秒間はrequest送ってくんな」と言っている感じ
Request Headerで指定された場合
reqで指定することもあるらしい ref
どういう意味になるんだ #??
resで指定された場合はわかるけど、reqで指定された場合はわからん
https://lowreal.net/2016/04/19/1
リロードとかスーパーリロードがそういうreqを送っているらしい
リロードすると、Cache-Control max-age=0が送られる
他のheaderとの組み合わせで挙動が変わることに注意する
max-age=3600で、Age Headerも3600だとcacheされずに毎回reqを送ることになる
/mrsekut-book-4297119250/107
記法の指定ミスに注意
code:ok
Cache-Control: max-age=3600
code:ng
Cache-Control: maxage=3600
code:ng
Cache-Control: max-age:3600
code:ng
Cache-Control: 3600
Cache-Control max-age=0とは #??
/mrsekut-book-4297119250/169
/mrsekut-book-4297119250/326 (4.9 キャッシュのTTL計算と再利用 RFC7234#4.2)